/**
 *====================================================
 * 文件名称: FinanceMoneyStatementEntity.java
 * 修订记录：
 * No    日期				作者(操作:具体内容)
 * 1.    2015年12月17日			chenxy(创建:创建文件)
 *====================================================
 * 类描述：(说明未实现或其它不应生成javadoc的内容)
 */
package com.yuexunit.finance.project.entity;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import com.yuexunit.finance.project.entity.lexicon.PaymentChannelEnum;
import com.yuexunit.finance.project.entity.lexicon.StatementStateEnum;

/**
 * @ClassName: FinanceMoneyStatementEntity
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author chenxy
 * @date 2015年12月17日 上午9:45:29
 */
@Entity
@Table(name = "FIN_FINANCE_MONEY_STATEMENT")
public class FinanceMoneyStatementEntity {

	/** 收支明细ID */
	@Id
	@GeneratedValue
	@Column(name = "MONEY_STATEMENT_ID")
	private Long moneyStatementId;

	/** 收付款单ID */
	@Column(name = "BILL_RECEIVABLE_ID")
	private Long billReceivableId;

	/** 收支单号 */
	@Column(name = "STATEMENT_NUMBER")
	private String statementNumber;

	/** 融资信息ID */
	@Column(name = "FINANCE_ID")
	private Long financeId;

	/** 融资信息编号 */
	@Column(name = "FINANCE_NUMBER")
	private String financeNumber;

	/** 收款方类型 */
	@Column(name = "RECEIPT_TYPE")
	private Integer receiptType;

	/** 收款方ID */
	@Column(name = "RECEIPT_ID")
	private Long receiptId;

	/** 收款方租户ID */
	@Column(name = "RECEIPT_TENANT_ID")
	private Long receiptTenantId;

	/** 收款对象 */
	@Column(name = "RECEIPT_NAME")
	private String receiptName;
	
	/** 收款人 */
	@Column(name = "PAYEE")
	private String payee;

	/** 收款发生金额 */
	@Column(name = "RECEIPT_AMOUNT")
	private BigDecimal receiptAmount;

	/** 收款余额 */
	@Column(name = "RECEIPT_BALANCE")
	private BigDecimal receiptBalance;

	/** 收款方核销状态 0:未核销/1:已核销 */
	@Column(name = "RECEIPT_VERIFI_STATE")
	private Boolean receiptVerifiState;

	/** 收款方核销人ID */
	@Column(name = "RECEIPT_VERIFI_ACCOUNT_ID")
	private Long receiptVerifiAccountId;

	/** 收款方核销人 */
	@Column(name = "RECEIPT_VERIFI_ACCOUNT")
	private String receiptVerifiAccount;

	/** 收款方核销时间 */
	@Column(name = "RECEIPT_VERIFI_DT")
	private Date receiptVerifiDateTime;

	/** 付款方类型 */
	@Column(name = "DISBURSEMENT_TYPE")
	private Integer disbursementType;

	/** 付款方ID */
	@Column(name = "DISBURSEMENT_ID")
	private Long disbursementId;

	/** 付款方租户ID */
	@Column(name = "DISBURSEMENT_TENANT_ID")
	private Long disbursementTenantId;

	/** 付款对象 */
	@Column(name = "DISBURSEMENT_NAME")
	private String disbursementName;
	
	/** 付款人 */
	@Column(name = "DRAWEE")
	private String drawee;

	/** 付款方核销状态 0:未核销/1:已核销 */
	@Column(name = "DISBURSEMENT_VERIFI_STATE")
	private Boolean disbursementVerifiState;

	/** 付款方核销人ID */
	@Column(name = "DISBURSEMENT_VERIFI_ACCOUNT_ID")
	private Long disbursementVerifiAccountId;

	/** 付款方核销人 */
	@Column(name = "DISBURSEMENT_VERIFI_ACCOUNT")
	private String disbursementVerifiAccount;

	/** 付款方核销时间 */
	@Column(name = "DISBURSEMENT_VERIFI_DT")
	private Date disbursementVerifiDateTime;

	/** 付款发生金额 */
	@Column(name = "DISBURSEMENT_AMOUNT")
	private BigDecimal disbursementAmount;

	/** 付款余额 */
	@Column(name = "DISBURSEMENT_BALANCE")
	private BigDecimal disbursementBalance;

	/** 业务编号 */
	@Column(name = "SOURCE_NUMBER")
	private String sourceNumber;

	/** 原款项金额 */
	@Column(name = "SOURCE_AMOUNT")
	private BigDecimal sourceAmount;

	/** 收支金额 */
	@Column(name = "AMOUNT")
	private BigDecimal amount;

	/** 授信额度 */
	@Column(name = "CREDIT_QUOTA")
	private BigDecimal creditQuota;

	/** 收支状态 0:未知/1:未支付/2:已付款/3:已支付 */
	@Column(name = "STATEMENT_STATE")
	private StatementStateEnum statementState;

	/** 收支来源 */
	@Column(name = "STATEMENT_SOURCE")
	private String statementSource;

	/** 收支来源ID */
	@Column(name = "STATEMENT_SOURCE_ID")
	private Long statementSourceId;

	/** 收付款时间 */
	@Column(name = "STATEMENT_D8")
	private Integer statementDate;

	/** 创建时间 */
	@Column(name = "CREATE_DT")
	private Date createDateTime;

	/** 支付渠道 0:未知/1:支付宝/2:微信支付 */
	@Column(name = "PAYMENT_CHANNEL")
	private PaymentChannelEnum paymentChannel;

	/** 支付时间 */
	@Column(name = "PAYMENT_DT")
	private Date paymentDateTime;
	
	/** 确认状态 */
	@Column(name = "CONFIRM_STATE")
	private Boolean confirmState;

	public Long getBillReceivableId() {
		return billReceivableId;
	}

	public void setBillReceivableId(Long billReceivableId) {
		this.billReceivableId = billReceivableId;
	}

	public Boolean getConfirmState() {
		return confirmState;
	}

	public void setConfirmState(Boolean confirmState) {
		this.confirmState = confirmState;
	}

	public String getPayee() {
		return payee;
	}

	public void setPayee(String payee) {
		this.payee = payee;
	}

	public String getDrawee() {
		return drawee;
	}

	public void setDrawee(String drawee) {
		this.drawee = drawee;
	}

	public Long getMoneyStatementId() {
		return moneyStatementId;
	}

	public void setMoneyStatementId(Long moneyStatementId) {
		this.moneyStatementId = moneyStatementId;
	}

	public String getStatementNumber() {
		return statementNumber;
	}

	public void setStatementNumber(String statementNumber) {
		this.statementNumber = statementNumber;
	}

	public Long getFinanceId() {
		return financeId;
	}

	public void setFinanceId(Long financeId) {
		this.financeId = financeId;
	}

	public String getFinanceNumber() {
		return financeNumber;
	}

	public void setFinanceNumber(String financeNumber) {
		this.financeNumber = financeNumber;
	}

	public Integer getReceiptType() {
		return receiptType;
	}

	public void setReceiptType(Integer receiptType) {
		this.receiptType = receiptType;
	}

	public Long getReceiptId() {
		return receiptId;
	}

	public void setReceiptId(Long receiptId) {
		this.receiptId = receiptId;
	}

	public Long getReceiptTenantId() {
		return receiptTenantId;
	}

	public void setReceiptTenantId(Long receiptTenantId) {
		this.receiptTenantId = receiptTenantId;
	}

	public String getReceiptName() {
		return receiptName;
	}

	public void setReceiptName(String receiptName) {
		this.receiptName = receiptName;
	}

	public BigDecimal getReceiptAmount() {
		if (receiptAmount == null) {
			return BigDecimal.ZERO;
		}
		return receiptAmount;
	}

	public void setReceiptAmount(BigDecimal receiptAmount) {
		this.receiptAmount = receiptAmount;
	}

	public BigDecimal getReceiptBalance() {
		return receiptBalance;
	}

	public void setReceiptBalance(BigDecimal receiptBalance) {
		this.receiptBalance = receiptBalance;
	}

	public Boolean getReceiptVerifiState() {
		return receiptVerifiState;
	}

	public void setReceiptVerifiState(Boolean receiptVerifiState) {
		this.receiptVerifiState = receiptVerifiState;
	}

	public Long getReceiptVerifiAccountId() {
		return receiptVerifiAccountId;
	}

	public void setReceiptVerifiAccountId(Long receiptVerifiAccountId) {
		this.receiptVerifiAccountId = receiptVerifiAccountId;
	}

	public String getReceiptVerifiAccount() {
		return receiptVerifiAccount;
	}

	public void setReceiptVerifiAccount(String receiptVerifiAccount) {
		this.receiptVerifiAccount = receiptVerifiAccount;
	}

	public Date getReceiptVerifiDateTime() {
		return receiptVerifiDateTime;
	}

	public void setReceiptVerifiDateTime(Date receiptVerifiDateTime) {
		this.receiptVerifiDateTime = receiptVerifiDateTime;
	}

	public Integer getDisbursementType() {
		return disbursementType;
	}

	public void setDisbursementType(Integer disbursementType) {
		this.disbursementType = disbursementType;
	}

	public Long getDisbursementId() {
		return disbursementId;
	}

	public void setDisbursementId(Long disbursementId) {
		this.disbursementId = disbursementId;
	}

	public Long getDisbursementTenantId() {
		return disbursementTenantId;
	}

	public void setDisbursementTenantId(Long disbursementTenantId) {
		this.disbursementTenantId = disbursementTenantId;
	}

	public String getDisbursementName() {
		return disbursementName;
	}

	public void setDisbursementName(String disbursementName) {
		this.disbursementName = disbursementName;
	}

	public Boolean getDisbursementVerifiState() {
		return disbursementVerifiState;
	}

	public void setDisbursementVerifiState(Boolean disbursementVerifiState) {
		this.disbursementVerifiState = disbursementVerifiState;
	}

	public Long getDisbursementVerifiAccountId() {
		return disbursementVerifiAccountId;
	}

	public void setDisbursementVerifiAccountId(Long disbursementVerifiAccountId) {
		this.disbursementVerifiAccountId = disbursementVerifiAccountId;
	}

	public String getDisbursementVerifiAccount() {
		return disbursementVerifiAccount;
	}

	public void setDisbursementVerifiAccount(String disbursementVerifiAccount) {
		this.disbursementVerifiAccount = disbursementVerifiAccount;
	}

	public Date getDisbursementVerifiDateTime() {
		return disbursementVerifiDateTime;
	}

	public void setDisbursementVerifiDateTime(Date disbursementVerifiDateTime) {
		this.disbursementVerifiDateTime = disbursementVerifiDateTime;
	}

	public BigDecimal getDisbursementAmount() {
		if (null == disbursementAmount) {
			return BigDecimal.ZERO;
		}
		return disbursementAmount;
	}

	public void setDisbursementAmount(BigDecimal disbursementAmount) {
		this.disbursementAmount = disbursementAmount;
	}

	public BigDecimal getDisbursementBalance() {
		return disbursementBalance;
	}

	public void setDisbursementBalance(BigDecimal disbursementBalance) {
		this.disbursementBalance = disbursementBalance;
	}

	public String getSourceNumber() {
		return sourceNumber;
	}

	public void setSourceNumber(String sourceNumber) {
		this.sourceNumber = sourceNumber;
	}

	public BigDecimal getSourceAmount() {
		return sourceAmount;
	}

	public void setSourceAmount(BigDecimal sourceAmount) {
		this.sourceAmount = sourceAmount;
	}

	public BigDecimal getAmount() {
		if (null == amount) {
			return BigDecimal.ZERO;
		}
		return amount;
	}

	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	public BigDecimal getCreditQuota() {
		return creditQuota;
	}

	public void setCreditQuota(BigDecimal creditQuota) {
		this.creditQuota = creditQuota;
	}

	public StatementStateEnum getStatementState() {
		return statementState;
	}

	public void setStatementState(StatementStateEnum statementState) {
		this.statementState = statementState;
	}

	public String getStatementSource() {
		return statementSource;
	}

	public void setStatementSource(String statementSource) {
		this.statementSource = statementSource;
	}

	public Long getStatementSourceId() {
		return statementSourceId;
	}

	public void setStatementSourceId(Long statementSourceId) {
		this.statementSourceId = statementSourceId;
	}

	public Integer getStatementDate() {
		return statementDate;
	}

	public void setStatementDate(Integer statementDate) {
		this.statementDate = statementDate;
	}

	public Date getCreateDateTime() {
		return createDateTime;
	}

	public void setCreateDateTime(Date createDateTime) {
		this.createDateTime = createDateTime;
	}

	public PaymentChannelEnum getPaymentChannel() {
		return paymentChannel;
	}

	public void setPaymentChannel(PaymentChannelEnum paymentChannel) {
		this.paymentChannel = paymentChannel;
	}

	public Date getPaymentDateTime() {
		return paymentDateTime;
	}

	public void setPaymentDateTime(Date paymentDateTime) {
		this.paymentDateTime = paymentDateTime;
	}

}
